package com.he.service;

import com.baomidou.mybatisplus.extension.service.IService;
import com.he.domain.dto.ConditionDTO;
import com.he.domain.dto.MenuDTO;
import com.he.domain.vo.MenuOption;
import com.he.domain.vo.MenuTree;
import com.he.domain.vo.MenuVO;
import com.he.entity.Menu;
import org.springframework.stereotype.Service;

import java.util.List;

/**
 * @author He
 * @version 1.0
 * @Date 2023/10/3 10:33
 * @Desc 菜单服务
 */
@Service
public interface MenuService extends IService<Menu> {
    /**
     * 获取菜单下拉树
     *
     * @return {@link MenuTree} 菜单树
     */
    List<MenuTree> listMenuTree();

    /**
     * 获取菜单列表
     *
     * @param condition 查询条件
     * @return {@link MenuVO} 菜单列表
     */
    List<MenuVO> listMenuVO(ConditionDTO condition);

    /**
     * 获取菜单选项树
     *
     * @return 菜单选项树
     */
    List<MenuOption> listMenuOption();


    /**
     * 添加菜单
     *
     * @param menu 菜单
     */
    void addMenu(MenuDTO menu);

    /**
     * 删除指定菜单
     *
     * @param menuId 菜单
     */
    void deleteMenu(Integer menuId);

    /**
     * 获取要编辑菜单修的信息
     *
     * @param menuId 菜单id
     */
    MenuDTO editMenu(Integer menuId);

    /**
     * 修改菜单
     *
     * @param menu 菜单
     */
    void updateMenu(MenuDTO menu);
}
